Robots are increasingly being used in various manufacturing applications due to their ability to repetitively perform a wide variety of tasks quickly and with a high degree of accuracy. Even complex assembly tasks, such as placing small parts in a confined space, are now being performed by robots. Presently the robot of choice for many assembly operations is the "SCARA" type robot which is so named because it possess a Selectively Compliant Arm for Robotic Assembly. SCARA robots are available from a number of commercial suppliers.
Generally, a SCARA robot comprises a base having a vertical member mounted thereto for vertical movement along a z axis. A first link is journaled to the vertical member by a first joint or wrist for rotation thereabout in a horizontal plane parallel to that defined by an x and y axis, each perpendicular to, and intersecting with the z axis at a point in the base of the robot. The point of intersection of the x, y and z axes defines the frame of reference for the robot. A second link has one end thereof pivotally connected to the free end of the first link by a second joint or wrist for rotation in the same horizontal plane. One or more tools are mounted to the other end of the second link. For example, the second link may carry a television camera for observing each of several fiducial marks on an object, such as a circuit board, to allow exact position thereof relative to the robot base to be determined with very high precision. In addition, the second link may also carry a gripper for picking up and placing a part.
A servo-motor is attached to the vertical member of the SCARA robot and is rotatably coupled to the first link. A second servo-motor is attached to the first link and is rotatably coupled to the second link. The servo-motors are each energized with a control signal supplied by a control system to rotate the links to place one of the tools at a desired location. After each servo-motor has rotated its corresponding link, the magnitude of the control signal supplied to each motor to cause it to maintain the link precisely in place may be reduced. When the control signal supplied to the servo-motor is reduced, the degree to which the servo-motor will maintain the link precisely in place is reduced. Thus, when each link is displaced slightly by forces external to the servo-motor, the servo-motor will not return the link exactly to its original position. In this way, the joint, about which the link rotates, will enjoy a small degree of compliance. This characteristic makes SCARA robots very useful in certain assembly operations because the compliance or dampening of each link can compensate for small positioning errors during part placement.
In certain high-precision assembly operations, it is undesirable to make the joints compliant in the manner described above. In fact, any compliance enjoyed by the joints may lead to part misplacement. Thus, during high-precision assembly operations, the control signal supplied to each servo-motor is not reduced in magnitude so that the joints are maintained substantially rigid.
A technique now in use for programming a SCARA robot to perform a particular task is to supply the control system with the coordinates, along the x, y and z axes, of the desired location at which the tool is to be placed. For example, when the robot is to place parts on a circuit board, the control system is supplied with the coordinate locations of where the gripper is to pick up and then place the part. From feedback information supplied to the control system indicative of the present angular position of each of the links of the robot, the control system determines the rotation of each link required to displace the gripper from its present position to the desired location.
To enable the control system to determine the rotation of the links required to displace a tool from its present position to its desired location, a kinematic model of the robot is provided. The kinematic model is a set of mathematical relationships, determined by the dimensions of the robot, which serve to translate the Cartesian coordinates, representing the desired location of the tool, into the corresponding angular position of the links of the robot. In order for the control system to control the rotation of the links of the robot to achieve precise placement of the tool, the kinematic model of the robot must be accurate. The accuracy of the kinematic model is dependent on a precise knowledge of the distance between the axes of rotation of the first and second links. Also, the angle between the two links, as well as the angle between the first link and a plane passing through the x and z axes, must be available to the kinematic model. Further, the location of each tool, relative to the axis of rotation of the second link, must be precisely known.
Generally, all of the data required for the kinematic model, with the exception of the location of each tool, are known with a relatively high degree of precision. However, because each of the tools carried by the second link is often mounted thereto by the end user of the robot without the aid of precision measuring equipment, only the nominal location of each tool is known to the kinematic model. Further, during repeated operation of the robot, the tools mounted to the second link may experience vibration and strain, causing the position thereof to shift from that originally known to the kinematic model.
As long as the kinematic model employed to control the SCARA robot remains accurate, the SCARA robot is capable of exhibiting "manipulator redundancy." Manipulator redundancy is the characteristic of the robot which allows it to place a tool carried by the second link at the same location (relative to the frame of reference of the robot) while the links of the robot are in one of two separate angular configurations. In other words, when the links of the robot are initially placed in the first configuration and are then switched to the second configuration, the tool position remains the same as before. However, if any errors exist in the kinematic model of the SCARA robot, then upon switching of the links between the first and second configurations, the position of the tool will change. Thus, it is possible, using the trait of manipulator redundancy, to determine if errors exist in the kinematic model.
In practice, the inaccuracies in the kinematic model due to shifting of the tool on the robot link are usually small. Hence, the resultant position error of the tool due to inaccuracies in the kinematic model is usually not significant and can be tolerated during most assembly operations. However, in some instances, the position error attributable to inaccuracies in the kinematic model cannot be tolerated. For example, certain assembly operations, such as the placement of chip carriers on a printed circuit board, require extremely high precision. Often the position error attributable to inaccuracies in the kinematic model may be sufficiently large enough to prevent such operations from being carried out correctly. Thus, there are difficulties in using SCARA robots to carry out high-precision assembly operations.
To make use of SCARA robots in high-precision assembly operations, it would be desirable to calibrate the robot to compensate for inaccuracies. However, because the kinematic model of the SCARA robot has not been well understood in the past, no efforts were made at calibrating the robot by adjusting the model.
Accordingly, a problem exists in how to calibrate a kinematic model used to control a SCARA robot.